package org.gbif.metadata.eml;

import java.sql.Date;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.ArrayList;


public class Dataset {
  protected String title;

  protected Creator creator;

  protected Abstract _abstract;

  protected Date pubDate;

  protected String language;

  protected IntellectualRights intellectualRights;

  protected Coverage coverage = new Coverage();

  protected ResearchProject researchProject;

  protected Methods methods;

  protected AdditionalMetadata additionalMetadata;

  protected Purpose purpose;

  protected Maintenance maintenance;

  protected Access access;


  public String getTitle() {
    return this.title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public void addKeywordSet(KeywordSet keywordSet) {
    keywordSetList.add(keywordSet);
  }

  public KeywordSet getKeywordSet(int index) {
    return (KeywordSet)keywordSetList.get( index );
  }

  public int sizeKeywordSetList() {
    return keywordSetList.size();
  }

  public Creator getCreator() {
    return this.creator;
  }

  public void setCreator(Creator creator) {
    this.creator = creator;
  }

  public Abstract getAbstract() {
    return this._abstract;
  }

  public void setAbstract(Abstract _abstract) {
    this._abstract = _abstract;
  }

  public Date getPubDate() {
    return this.pubDate;
  }

  public void setPubDate(Date pubDate) {
    this.pubDate = pubDate;
  }

  public String getLanguage() {
    return this.language;
  }

  public void setLanguage(String language) {
    this.language = language;
  }

  public IntellectualRights getIntellectualRights() {
    return this.intellectualRights;
  }

  public void setIntellectualRights(IntellectualRights intellectualRights) {
    this.intellectualRights = intellectualRights;
  }

  public void addDistribution(Distribution distribution) {
    distributionList.add(distribution);
  }

  public Distribution getDistribution(int index) {
    return (Distribution)distributionList.get( index );
  }

  public int sizeDistributionList() {
    return distributionList.size();
  }

  public Coverage getCoverage() {
    return this.coverage;
  }

  public void setCoverage(Coverage coverage) {
    this.coverage = coverage;
  }

  public ResearchProject getResearchProject() {
    return this.researchProject;
  }

  public void setResearchProject(ResearchProject researchProject) {
    this.researchProject = researchProject;
  }

  public Methods getMethods() {
    return this.methods;
  }

  public void setMethods(Methods methods) {
    this.methods = methods;
  }

  public AdditionalMetadata getAdditionalMetadata() {
    return this.additionalMetadata;
  }

  public void setAdditionalMetadata(AdditionalMetadata additionalMetadata) {
    this.additionalMetadata = additionalMetadata;
  }

  public Purpose getPurpose() {
    return this.purpose;
  }

  public void setPurpose(Purpose purpose) {
    this.purpose = purpose;
  }

  public Maintenance getMaintenance() {
    return this.maintenance;
  }

  public void setMaintenance(Maintenance maintenance) {
    this.maintenance = maintenance;
  }

  public void addContact(Contact contact) {
    contactList.add(contact);
  }

  public Contact getContact(int index) {
    return (Contact)contactList.get( index );
  }

  public int sizeContactList() {
    return contactList.size();
  }

  public Access getAccess() {
    return this.access;
  }

  public void setAccess(Access access) {
    this.access = access;
  }

  protected ArrayList keywordSetList = new ArrayList();

  protected ArrayList distributionList = new ArrayList();

  protected ArrayList contactList = new ArrayList();

}
